/**
 * 时间戳拦截限制、签名验证
 */
const md5 = require('md5'); // 加密
const log4js = require('./log4'); // 日志

const errLog = log4js.getLogger('error'); // 获取错误日志笔

module.exports = function (header) {
  // 是否需要签名
  if (process.env.ApiSign === 'false') return true;
  // 签名判断逻辑
  const time = new Date().getTime() - header.timestamp;
  // 是否已经过期
  if (time > 86400) return false;
  // 签名加密处理
  const signStr = md5(`appKey=${process.env.appKey}timeStamp=${header.timestamp}`);
  // 打印储物签名
  if (signStr !== header.sign) {
    errLog.error(
      `签名报文：appKey=${process.env.appKey}timeStamp=${header.timestamp},signStr=${signStr}`
    );
    return false;
  }
  return true;
};
